home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
lib
/
calc
/
help
/
config
< prev
next >
Wrap
Text File
|
1995-07-17
|
4KB
|
92 lines
Configuration parameters
Configuration parameters affect how the calculator performs certain
operations, and affects all future calculations. These parameters
affect the accuracy of calculations, the displayed format of results,
and which algorithms are used for calculations. The parameters are
read or set using the "config" built-in function. The following
parameters can be specified:
"trace" turns tracing on or off (for debugging).
"display" sets number of digits in prints.
"epsilon" sets error value for transcendentals.
"maxprint" sets maximum number of elements printed.
"mode" sets printout mode.
"mul2" sets size for alternative multiply.
"sq2" sets size for alternative squaring.
"pow2" sets size for alternate powering.
"redc2" sets size for alternate REDC.
The use of the trace flag is for debugging, and its meaning may
change in the future. A value of 1 causes the calculator to print
its internal opcodes as it executes functions. A value of zero
disables tracing again.
Display specifies how many digits after the decimal point should
be printed when printing real or exponential numbers. The initial
display value is 20. This parameter does not affect the accuracy
of a calculation, since it only has meaning when printing results.
Epsilon specifies the required precision of calculations by
setting the maximum allowed error for transcendental functions.
The error is an absolute error value for many functions, but
for some functions it is a relative error. The initial value
is 1e-20. Functions which require an epsilon value accept an
optional argument which overrides this default epsilon value for
that single call. The built-in function "epsilon" also can be
used to read or set this value, and is provided for ease of use.
Mode specifies how numbers should be printed. Mode is a string
value indicating the printout method. The initial mode is "real".
Possible modes are:
"frac" decimal fractions
"int" decimal integer
"real" decimal floating point
"exp" decimal exponential
"hex" hex fractions
"oct" octal fractions
"bin" binary fractions
Maxprint specifies the maximum number of elements to be displayed
when a matrix or list is printed. The initial value is 16 elements.
Mul2 and sq2 specify the sizes of numbers at which calc switches
from its first to its second algorithm for multiplying and squaring.
The first algorithm is the usual method of cross multiplying, which
runs in a time of O(N^2). The second method is a recursive and
complicated method which runs in a time of O(N^1.585). The argument
for these parameters is the number of binary words at which the
second algorithm begins to be used. The minimum value is 2, and
the maximum value is very large. If 2 is used, then the recursive
algorithm is used all the way down to single digits, which becomes
slow since the recursion overhead is high. If a number such as
1000000 is used, then the recursive algorithm is never used, causing
calculations for large numbers to slow down. For a typical example
on a 386, the two algorithms are about equal in speed for a value
of 20, which is about 100 decimal digits. A value of zero resets
the parameter back to its default value. Usually there is no need
to change these parameters.
Pow2 specifies the sizes of numbers at which calc switches from
its first to its second algorithm for calculating powers modulo
another number. The first algorithm for calculating modular powers
is by repeated squaring and multiplying and dividing by the modulus.
The second method uses the REDC algorithm given by Peter Montgomery
which avoids divisions. The argument for pow2 is the size of the
modulus at which the second algorithm begins to be used.
Redc2 specifies the sizes of numbers at which calc switches from
its first to its second algorithm when using the REDC algorithm.
The first algorithm performs a multiply and a modular reduction
together in one loop which runs in O(N^2). The second algorithm
does the REDC calculation using three multiplies, and runs in
O(N^1.585). The argument for redc2 is the size of the modulus at
which the second algorithm begins to be used.
Examples of setting some parameters are:
config("mode", "exp"); exponential output
config("display", 50); 50 digits of output
epsilon(epsilon() / 8); 3 bits more accuracy